Traits এর ধারণা এবং এর ব্যবহার

Computer Programming - গ্রুভি (Groovy) Traits এবং Mixin (ট্রেইট এবং মিক্সিন) |
185
185

Groovy তে Traits এর ধারণা এবং ব্যবহার

Trait হলো Groovy তে একটি বিশেষ ধরনের ধারণা যা মাল্টিপল ইনহেরিটেন্স (একাধিক শ্রেণী থেকে উত্তরাধিকার পাওয়ার সুবিধা) প্রদান করতে সাহায্য করে। Traits হলো এমন কিছু কোডের ব্লক যা বিভিন্ন ক্লাসে mixin হিসেবে ব্যবহার করা যায়। এর মাধ্যমে কোডের পুনঃব্যবহারযোগ্যতা বৃদ্ধি পায় এবং ছোট ছোট ফাংশনালিটির ক্লাসে সহজেই যুক্ত করা যায়। Traits Java এর interface এর মতো, তবে এটি মেথডের ডিফল্ট ইমপ্লিমেন্টেশন এবং state (ভেরিয়েবল) সংরক্ষণ করতে পারে।


Trait এর বৈশিষ্ট্য

  • ডিফল্ট মেথড ইমপ্লিমেন্টেশন: Traits এর মধ্যে মেথড ডিফাইন করে সরাসরি তার ইমপ্লিমেন্টেশন দেয়া যায়, যা Java এর interface এ সম্ভব নয়।
  • স্টেট সংরক্ষণ: Traits এ ভেরিয়েবল বা properties ডিফাইন করা যায়, যা ক্লাসে মিক্সিন হিসেবে যুক্ত করার পর সেগুলি ব্যবহার করা সম্ভব।
  • মাল্টিপল Traits: একটি ক্লাস একাধিক Traits ইমপ্লিমেন্ট করতে পারে, যা মাল্টিপল ইনহেরিটেন্সের বিকল্প হিসেবে কাজ করে।

Trait ডিক্লারেশন এবং ব্যবহার

Groovy তে Trait ডিক্লার করতে trait কীওয়ার্ড ব্যবহার করা হয়। Traits এর মধ্যে মেথড এবং properties ডিক্লার করা যায়। পরে, যে কোনো ক্লাসে implements কিওয়ার্ড দিয়ে Traits যুক্ত করা যায়।

Trait ডিক্লারেশন উদাহরণ:

trait Greetable {
    String name

    def greet() {
        println "Hello, $name!"
    }
}

এখানে Greetable নামে একটি Trait ডিক্লার করা হয়েছে, যা একটি name property এবং greet() মেথড সংজ্ঞায়িত করে।


Trait ব্যবহার করে ক্লাসে মিক্সিন করা

Greetable Trait কে একটি ক্লাসে যুক্ত করে তার মেথড এবং প্রপার্টিগুলি ব্যবহার করা সম্ভব।

class Person implements Greetable {}

def person = new Person()
person.name = "Alice"
person.greet()  // Output: Hello, Alice!

এখানে Person ক্লাস Greetable Trait কে implements করেছে, ফলে Person ক্লাসে greet() মেথড এবং name প্রপার্টি ব্যবহার করা যাচ্ছে।


একাধিক Traits ব্যবহার

Groovy তে একটি ক্লাস একাধিক Traits ইমপ্লিমেন্ট করতে পারে।

trait Greetable {
    String name
    def greet() {
        println "Hello, $name!"
    }
}

trait Walkable {
    def walk() {
        println "I am walking."
    }
}

class Person implements Greetable, Walkable {}

def person = new Person()
person.name = "Bob"
person.greet()      // Output: Hello, Bob!
person.walk()       // Output: I am walking.

এখানে Person ক্লাস Greetable এবং Walkable দুটি Traits ইমপ্লিমেন্ট করেছে, যার ফলে এটি দুইটি Traits এর মেথড এবং প্রপার্টি ব্যবহার করতে পারছে।


Traits এ ডিফল্ট এবং কাস্টম মেথড

Traits এ ডিফল্ট মেথড সংজ্ঞায়িত করা যায় এবং ক্লাসে মিক্সিন করার পর এই মেথডগুলি ব্যবহার করা সম্ভব। Traits এ ডিফল্ট ইমপ্লিমেন্টেশন থাকা মেথড প্রয়োজনে ওভাররাইড করাও সম্ভব।

trait Eatable {
    def eat() {
        println "Eating food."
    }
}

class Animal implements Eatable {
    // Eatable এর মেথড ওভাররাইড করে কাস্টম ইমপ্লিমেন্টেশন
    def eat() {
        println "Animal is eating."
    }
}

def animal = new Animal()
animal.eat()  // Output: Animal is eating.

এখানে Animal ক্লাস Eatable Trait এর eat() মেথডকে ওভাররাইড করে নিজস্ব ইমপ্লিমেন্টেশন দিয়েছে।


Trait Composition

Groovy তে Trait Composition এর সুবিধাও রয়েছে, যার মাধ্যমে একটি Trait অন্য একটি Trait এর মেথড বা প্রপার্টি ব্যবহার করতে পারে।

trait Speaker {
    def speak() {
        println "Speaking..."
    }
}

trait LoudSpeaker extends Speaker {
    def speakLoudly() {
        speak()
        println "Speaking loudly!"
    }
}

class Person implements LoudSpeaker {}

def person = new Person()
person.speak()         // Output: Speaking...
person.speakLoudly()   // Output: Speaking... Speaking loudly!

এখানে LoudSpeaker Trait Speaker Trait কে এক্সটেন্ড করেছে এবং speak() মেথড ব্যবহার করছে।


সারসংক্ষেপ

Groovy তে Traits একটি বিশেষ বৈশিষ্ট্য যা মাল্টিপল ইনহেরিটেন্স এবং কোড রিইউজ করতে সহায়তা করে। Traits এর মাধ্যমে ডিফল্ট মেথড ইমপ্লিমেন্টেশন, প্রপার্টি ডিফাইন করা এবং একাধিক Trait মিক্সিন করা সম্ভব। Traits মূলত কোড সংক্ষিপ্ত ও সহজ করে এবং Object-Oriented প্রোগ্রামিং এর নমনীয়তা বৃদ্ধি করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion